//
//  UIImage+category.m
//  runtime
//
//  Created by zxy on 2018/4/17.
//  Copyright © 2018年 zssh. All rights reserved.
//

#import "UIImage+category.h"
#import <objc/runtime.h>
@implementation UIImage (category)
+(UIImage *)xh_imageName:(NSString *)name{
    double version = [[UIDevice currentDevice].systemVersion doubleValue];
    if(version >= 7.0){
         // 如果系统版本是7.0以上，使用另外一套文件名结尾是‘_os7’的扁平化图片
        name = [name stringByAppendingString:@"_os7"];
    }
    return [UIImage xh_imageName:name];
}
/*
注意：自定义方法中最后一定要再调用一下系统的方法，让其有加载图片的功能，
 但是由于方法交换，系统的方法名已经变成了我们自定义的方法名（有点绕，就是用我们的名字能调用系统的方法，用系统的名字能调用我们的方法），这就实现了系统方法的拦截！
*/
+(void)load{
    //获取UIImage类的二个方法
    Method m1 = class_getClassMethod([UIImage class], @selector(imageNamed:));
    Method m2 = class_getClassMethod([UIImage class], @selector(xh_imageName:));
    
    //交换二个方法实现
    method_exchangeImplementations(m1, m2);
}

@end
